package icu.qx.pro.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import icu.qx.pro.domain.gbs.GbsBom;
import icu.qx.pro.domain.gbs.GbsGood;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 生产计划对象 pro_schedule
 *
 * @author yong
 * @date 2024-07-09
 */
public class ProSchedule extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * schedule_code
     */
    private String scheduleCode;

    /**
     * 计划名称
     */
    @Excel(name = "计划名称")
    private String scheduleName;

    /**
     * 产品code
     */
    @Excel(name = "产品code")
    private String schedulePdCode;
    private GbsGood gbsGood;

    /**
     * 计划数量
     */
    @Excel(name = "计划数量")
    private BigDecimal scheduleNum;
    private BigDecimal scheduleRNum;

    /**
     * 计划状态 0未分解 1已分解 2已撤回 3进行中 4已关闭 5已完成
     */
    @Excel(name = "计划状态 0未分解 1已分解 2已撤回 3进行中 4已关闭 5已完成")
    private String scheduleStatus;

    /**
     * 开工时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    @Excel(name = "开工时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date scheduleStart;

    /**
     * 完工时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    @Excel(name = "完工时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date scheduleComplete;

    /**
     * 实际开工时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    @Excel(name = "实际开工时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date scheduleRStart;

    /**
     * 实际完工时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    @Excel(name = "实际完工时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date scheduleRComple;

    /**
     * 需求日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    @Excel(name = "需求日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date scheduleRequire;

    /**
     * 来源类型
     */
    @Excel(name = "来源类型")
    private String scheduleSourceType;

    /**
     * 订单编号
     */
    @Excel(name = "订单编号")
    private String scheduleOrder;

    /**
     * 关闭原因
     */
    @Excel(name = "关闭原因")
    private String scheduleCloseReason;

    /**
     * 工单数量
     */
    @Excel(name = "工单数量")
    private Long scheduleWorkNum;

    /**
     * bomcode
     */
    @Excel(name = "bomcode")
    private String scheduleBom;

    /**
     * bom版本
     */
    @Excel(name = "bom版本")
    private String scheduleBomVersion;

    private GbsBom gbsBom;

    /**
     * 备注
     */
    @Excel(name = "备注")
    private String scheduleDesc;

    private String pdProuteCode;

    public void setScheduleCode(String scheduleCode) {
        this.scheduleCode = scheduleCode;
    }

    public String getScheduleCode() {
        return scheduleCode;
    }

    public void setScheduleName(String scheduleName) {
        this.scheduleName = scheduleName;
    }

    public String getScheduleName() {
        return scheduleName;
    }

    public void setSchedulePdCode(String schedulePdCode) {
        this.schedulePdCode = schedulePdCode;
    }

    public String getSchedulePdCode() {
        return schedulePdCode;
    }

    public BigDecimal getScheduleNum() {
        return scheduleNum;
    }

    public void setScheduleNum(BigDecimal scheduleNum) {
        this.scheduleNum = scheduleNum;
    }

    public BigDecimal getScheduleRNum() {
        return scheduleRNum;
    }

    public void setScheduleRNum(BigDecimal scheduleRNum) {
        this.scheduleRNum = scheduleRNum;
    }

    public void setScheduleStatus(String scheduleStatus) {
        this.scheduleStatus = scheduleStatus;
    }

    public String getScheduleStatus() {
        return scheduleStatus;
    }

    public void setScheduleStart(Date scheduleStart) {
        this.scheduleStart = scheduleStart;
    }

    public Date getScheduleStart() {
        return scheduleStart;
    }

    public void setScheduleComplete(Date scheduleComplete) {
        this.scheduleComplete = scheduleComplete;
    }

    public Date getScheduleComplete() {
        return scheduleComplete;
    }

    public void setScheduleRStart(Date scheduleRStart) {
        this.scheduleRStart = scheduleRStart;
    }

    public Date getScheduleRStart() {
        return scheduleRStart;
    }

    public void setScheduleRComple(Date scheduleRComple) {
        this.scheduleRComple = scheduleRComple;
    }

    public Date getScheduleRComple() {
        return scheduleRComple;
    }

    public void setScheduleRequire(Date scheduleRequire) {
        this.scheduleRequire = scheduleRequire;
    }

    public Date getScheduleRequire() {
        return scheduleRequire;
    }

    public void setScheduleSourceType(String scheduleSourceType) {
        this.scheduleSourceType = scheduleSourceType;
    }

    public String getScheduleSourceType() {
        return scheduleSourceType;
    }

    public void setScheduleOrder(String scheduleOrder) {
        this.scheduleOrder = scheduleOrder;
    }

    public String getScheduleOrder() {
        return scheduleOrder;
    }

    public void setScheduleCloseReason(String scheduleCloseReason) {
        this.scheduleCloseReason = scheduleCloseReason;
    }

    public String getScheduleCloseReason() {
        return scheduleCloseReason;
    }

    public void setScheduleWorkNum(Long scheduleWorkNum) {
        this.scheduleWorkNum = scheduleWorkNum;
    }

    public Long getScheduleWorkNum() {
        return scheduleWorkNum;
    }

    public void setScheduleBom(String scheduleBom) {
        this.scheduleBom = scheduleBom;
    }

    public String getScheduleBom() {
        return scheduleBom;
    }

    public void setScheduleBomVersion(String scheduleBomVersion) {
        this.scheduleBomVersion = scheduleBomVersion;
    }

    public String getScheduleBomVersion() {
        return scheduleBomVersion;
    }

    public void setScheduleDesc(String scheduleDesc) {
        this.scheduleDesc = scheduleDesc;
    }

    public String getScheduleDesc() {
        return scheduleDesc;
    }

    public GbsGood getGbsGood() {
        return gbsGood;
    }

    public void setGbsGood(GbsGood gbsGood) {
        this.gbsGood = gbsGood;
    }

    public GbsBom getGbsBom() {
        return gbsBom;
    }

    public void setGbsBom(GbsBom gbsBom) {
        this.gbsBom = gbsBom;
    }

    public String getPdProuteCode() {
        return pdProuteCode;
    }

    public void setPdProuteCode(String pdProuteCode) {
        this.pdProuteCode = pdProuteCode;
    }

    @Override
    public String toString() {
        return "ProSchedule{" +
                "scheduleCode='" + scheduleCode + '\'' +
                ", scheduleName='" + scheduleName + '\'' +
                ", schedulePdCode='" + schedulePdCode + '\'' +
                ", gbsGood=" + gbsGood +
                ", scheduleNum=" + scheduleNum +
                ", scheduleRNum=" + scheduleRNum +
                ", scheduleStatus='" + scheduleStatus + '\'' +
                ", scheduleStart=" + scheduleStart +
                ", scheduleComplete=" + scheduleComplete +
                ", scheduleRStart=" + scheduleRStart +
                ", scheduleRComple=" + scheduleRComple +
                ", scheduleRequire=" + scheduleRequire +
                ", scheduleSourceType='" + scheduleSourceType + '\'' +
                ", scheduleOrder='" + scheduleOrder + '\'' +
                ", scheduleCloseReason='" + scheduleCloseReason + '\'' +
                ", scheduleWorkNum=" + scheduleWorkNum +
                ", scheduleBom='" + scheduleBom + '\'' +
                ", scheduleBomVersion='" + scheduleBomVersion + '\'' +
                ", gbsBom=" + gbsBom +
                ", scheduleDesc='" + scheduleDesc + '\'' +
                ", pdProuteCode='" + pdProuteCode + '\'' +
                "} " + super.toString();
    }
}
